
duowei_array:     file format elf32-littlearm


Disassembly of section .init:

000102ec <_init>:
   102ec:	e1a0c00d 	mov	ip, sp
   102f0:	e92ddff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc}
   102f4:	e24cb004 	sub	fp, ip, #4
   102f8:	e91baff0 	ldmdb	fp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, pc}

Disassembly of section .plt:

000102fc <printf@plt-0x14>:
   102fc:	e52de004 	push	{lr}		; (str lr, [sp, #-4]!)
   10300:	e59fe004 	ldr	lr, [pc, #4]	; 1030c <_init+0x20>
   10304:	e08fe00e 	add	lr, pc, lr
   10308:	e5bef008 	ldr	pc, [lr, #8]!
   1030c:	00010548 	.word	0x00010548

00010310 <printf@plt>:
   10310:	e28fc600 	add	ip, pc, #0, 12
   10314:	e28cca10 	add	ip, ip, #16, 20	; 0x10000
   10318:	e5bcf548 	ldr	pc, [ip, #1352]!	; 0x548

0001031c <abort@plt>:
   1031c:	e28fc600 	add	ip, pc, #0, 12
   10320:	e28cca10 	add	ip, ip, #16, 20	; 0x10000
   10324:	e5bcf540 	ldr	pc, [ip, #1344]!	; 0x540

00010328 <__deregister_frame_info@plt>:
   10328:	e28fc600 	add	ip, pc, #0, 12
   1032c:	e28cca10 	add	ip, ip, #16, 20	; 0x10000
   10330:	e5bcf538 	ldr	pc, [ip, #1336]!	; 0x538

00010334 <__uClibc_main@plt>:
   10334:	e28fc600 	add	ip, pc, #0, 12
   10338:	e28cca10 	add	ip, ip, #16, 20	; 0x10000
   1033c:	e5bcf530 	ldr	pc, [ip, #1328]!	; 0x530

00010340 <__register_frame_info@plt>:
   10340:	e28fc600 	add	ip, pc, #0, 12
   10344:	e28cca10 	add	ip, ip, #16, 20	; 0x10000
   10348:	e5bcf528 	ldr	pc, [ip, #1320]!	; 0x528

Disassembly of section .text:

0001034c <_start>:
   1034c:	e3a0b000 	.word	0xe3a0b000
   10350:	e3a0e000 	.word	0xe3a0e000
   10354:	e49d1004 	.word	0xe49d1004
   10358:	e1a0200d 	.word	0xe1a0200d
   1035c:	e52d2004 	.word	0xe52d2004
   10360:	e52d0004 	.word	0xe52d0004
   10364:	e59fc010 	.word	0xe59fc010
   10368:	e52dc004 	.word	0xe52dc004
   1036c:	e59f000c 	.word	0xe59f000c
   10370:	e59f300c 	.word	0xe59f300c
   10374:	eaffffee 	.word	0xeaffffee
   10378:	ebffffe7 	.word	0xebffffe7
   1037c:	00010708 	.word	0x00010708
   10380:	00010490 	.word	0x00010490
   10384:	000102ec 	.word	0x000102ec

00010388 <deregister_tm_clones>:
   10388:	e59f301c 	ldr	r3, [pc, #28]	; 103ac <deregister_tm_clones+0x24>
   1038c:	e59f001c 	ldr	r0, [pc, #28]	; 103b0 <deregister_tm_clones+0x28>
   10390:	e0603003 	rsb	r3, r0, r3
   10394:	e3530006 	cmp	r3, #6
   10398:	912fff1e 	bxls	lr
   1039c:	e59f3010 	ldr	r3, [pc, #16]	; 103b4 <deregister_tm_clones+0x2c>
   103a0:	e3530000 	cmp	r3, #0
   103a4:	012fff1e 	bxeq	lr
   103a8:	e12fff13 	bx	r3
   103ac:	0002087f 	.word	0x0002087f
   103b0:	0002087c 	.word	0x0002087c
   103b4:	00000000 	.word	0x00000000

000103b8 <register_tm_clones>:
   103b8:	e59f1024 	ldr	r1, [pc, #36]	; 103e4 <register_tm_clones+0x2c>
   103bc:	e59f0024 	ldr	r0, [pc, #36]	; 103e8 <register_tm_clones+0x30>
   103c0:	e0601001 	rsb	r1, r0, r1
   103c4:	e1a01141 	asr	r1, r1, #2
   103c8:	e0811fa1 	add	r1, r1, r1, lsr #31
   103cc:	e1b010c1 	asrs	r1, r1, #1
   103d0:	012fff1e 	bxeq	lr
   103d4:	e59f3010 	ldr	r3, [pc, #16]	; 103ec <register_tm_clones+0x34>
   103d8:	e3530000 	cmp	r3, #0
   103dc:	012fff1e 	bxeq	lr
   103e0:	e12fff13 	bx	r3
   103e4:	0002087c 	.word	0x0002087c
   103e8:	0002087c 	.word	0x0002087c
   103ec:	00000000 	.word	0x00000000

000103f0 <__do_global_dtors_aux>:
   103f0:	e92d4010 	push	{r4, lr}
   103f4:	e59f402c 	ldr	r4, [pc, #44]	; 10428 <__do_global_dtors_aux+0x38>
   103f8:	e5d43000 	ldrb	r3, [r4]
   103fc:	e3530000 	cmp	r3, #0
   10400:	18bd8010 	popne	{r4, pc}
   10404:	ebffffdf 	bl	10388 <deregister_tm_clones>
   10408:	e59f301c 	ldr	r3, [pc, #28]	; 1042c <__do_global_dtors_aux+0x3c>
   1040c:	e3530000 	cmp	r3, #0
   10410:	0a000001 	beq	1041c <__do_global_dtors_aux+0x2c>
   10414:	e59f0014 	ldr	r0, [pc, #20]	; 10430 <__do_global_dtors_aux+0x40>
   10418:	ebffffc2 	bl	10328 <__deregister_frame_info@plt>
   1041c:	e3a03001 	mov	r3, #1
   10420:	e5c43000 	strb	r3, [r4]
   10424:	e8bd8010 	pop	{r4, pc}
   10428:	0002087c 	.word	0x0002087c
   1042c:	00000000 	.word	0x00000000
   10430:	0001078c 	.word	0x0001078c

00010434 <frame_dummy>:
   10434:	e59f3040 	ldr	r3, [pc, #64]	; 1047c <frame_dummy+0x48>
   10438:	e92d4010 	push	{r4, lr}
   1043c:	e3530000 	cmp	r3, #0
   10440:	0a000002 	beq	10450 <frame_dummy+0x1c>
   10444:	e59f1034 	ldr	r1, [pc, #52]	; 10480 <frame_dummy+0x4c>
   10448:	e59f0034 	ldr	r0, [pc, #52]	; 10484 <frame_dummy+0x50>
   1044c:	ebffffbb 	bl	10340 <__register_frame_info@plt>
   10450:	e59f0030 	ldr	r0, [pc, #48]	; 10488 <frame_dummy+0x54>
   10454:	e5903000 	ldr	r3, [r0]
   10458:	e3530000 	cmp	r3, #0
   1045c:	1a000001 	bne	10468 <frame_dummy+0x34>
   10460:	e8bd4010 	pop	{r4, lr}
   10464:	eaffffd3 	b	103b8 <register_tm_clones>
   10468:	e59f301c 	ldr	r3, [pc, #28]	; 1048c <frame_dummy+0x58>
   1046c:	e3530000 	cmp	r3, #0
   10470:	0afffffa 	beq	10460 <frame_dummy+0x2c>
   10474:	e12fff33 	blx	r3
   10478:	eafffff8 	b	10460 <frame_dummy+0x2c>
   1047c:	00000000 	.word	0x00000000
   10480:	00020880 	.word	0x00020880
   10484:	0001078c 	.word	0x0001078c
   10488:	00020798 	.word	0x00020798
   1048c:	00000000 	.word	0x00000000

00010490 <main>:
void sum_rows(int ar[][COLS], int rows);
void sum_cols(int [][COLS], int);
int sum2d(int (*ar)[COLS], int rows);

int main(void)
{
   10490:	e92d4800 	push	{fp, lr}
   10494:	e28db004 	add	fp, sp, #4
   10498:	e24dd030 	sub	sp, sp, #48	; 0x30
	int junk[ROWS][COLS] = {
   1049c:	e59f306c 	ldr	r3, [pc, #108]	; 10510 <main+0x80>  variable
   104a0:	e24bc034 	sub	ip, fp, #52	; 0x34                   stack point
   104a4:	e1a0e003 	mov	lr, r3      ; lr = r3 = variable
   104a8:	e8be000f 	ldm	lr!, {r0, r1, r2, r3} ; lr=r0=2, lr+4=r1=4, lr+8=r2=6, lr+12=r3=8
   104ac:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3} ; ip=r0=2, ip+4=r1=4, ip+8=r2=6, ip+12=r3=8
   104b0:	e8be000f 	ldm	lr!, {r0, r1, r2, r3}     ; load 3, 5, 7, 9
   104b4:	e8ac000f 	stmia	ip!, {r0, r1, r2, r3} ; save 3, 5, 7, 9
   104b8:	e89e000f 	ldm	lr, {r0, r1, r2, r3}      ; load 12 10, 8, 6
   104bc:	e88c000f 	stm	ip, {r0, r1, r2, r3}      ; save 12, 10, 8, 6
		{2, 4, 6, 8},
		{3, 5, 7, 9},
		{12, 10, 8, 6}
	};

	sum_rows(junk, ROWS);
   104c0:	e24b3034 	sub	r3, fp, #52	; 0x34  junk address
   104c4:	e3a01003 	mov	r1, #3      ; r1 = 3
   104c8:	e1a00003 	mov	r0, r3      ; r0 = r3 = 3
   104cc:	eb000011 	bl	10518 <sum_rows>
	sum_cols(junk, ROWS);
   104d0:	e24b3034 	sub	r3, fp, #52	; 0x34
   104d4:	e3a01003 	mov	r1, #3
   104d8:	e1a00003 	mov	r0, r3
   104dc:	eb000037 	bl	105c0 <sum_cols>

	printf("sum of all elements = %d\n", sum2d(junk, ROWS));
   104e0:	e24b3034 	sub	r3, fp, #52	; 0x34
   104e4:	e3a01003 	mov	r1, #3      ; r1 = 3
   104e8:	e1a00003 	mov	r0, r3      ; r0 = junk address
   104ec:	eb00005d 	bl	10668 <sum2d>
   104f0:	e1a03000 	mov	r3, r0 ; r3 = return value
   104f4:	e1a01003 	mov	r1, r3 ; r1 = return value
   104f8:	e59f0014 	ldr	r0, [pc, #20]	; 10514 <main+0x84>
   104fc:	ebffff83 	bl	10310 <printf@plt>

	return 0;
   10500:	e3a03000 	mov	r3, #0
}
   10504:	e1a00003 	mov	r0, r3
   10508:	e24bd004 	sub	sp, fp, #4
   1050c:	e8bd8800 	pop	{fp, pc}
   10510:	00010734 	.word	0x00010734
   10514:	00010718 	.word	0x00010718

00010518 <sum_rows>:

void sum_rows(int ar[][COLS], int rows)
{
   10518:	e92d4800 	push	{fp, lr}
   1051c:	e28db004 	add	fp, sp, #4
   10520:	e24dd018 	sub	sp, sp, #24
   10524:	e50b0018 	str	r0, [fp, #-24]	; 0xffffffe8    ar
   10528:	e50b101c 	str	r1, [fp, #-28]	; 0xffffffe4    rows
	int r;
	int c;
	int tot;

	for (r = 0; r < rows; r++) {
   1052c:	e3a03000 	mov	r3, #0 ; r = 0
   10530:	e50b3008 	str	r3, [fp, #-8] ; r3 = r
   10534:	ea00001a 	b	105a4 <sum_rows+0x8c>
		tot = 0;
   10538:	e3a03000 	mov	r3, #0 ; tot = 0
   1053c:	e50b3010 	str	r3, [fp, #-16] ; fp-16 = tot
		for (c = 0; c < COLS; c++) {
   10540:	e3a03000 	mov	r3, #0 ; c = 0
   10544:	e50b300c 	str	r3, [fp, #-12] ; fp-12 = c
   10548:	ea00000b 	b	1057c <sum_rows+0x64>
			tot += ar[r][c];
   1054c:	e51b3008 	ldr	r3, [fp, #-8] ; r3 = r
   10550:	e1a03203 	lsl	r3, r3, #4    ; r3 = r << 4
   10554:	e51b2018 	ldr	r2, [fp, #-24]	; 0xffffffe8    r2 = ar
   10558:	e0823003 	add	r3, r2, r3      ; r3 = ar + (r<<4)
   1055c:	e51b200c 	ldr	r2, [fp, #-12]  ; r2 = c
   10560:	e7933102 	ldr	r3, [r3, r2, lsl #2] ; r3 = (ar+(r<<4)) + c<<2
   10564:	e51b2010 	ldr	r2, [fp, #-16]       ; r2 = tot
   10568:	e0823003 	add	r3, r2, r3           ; r3 = tot + ((ar+(<<4))+c<<2)
   1056c:	e50b3010 	str	r3, [fp, #-16]       ; tot = tot + ar[r][c]
	int c;
	int tot;

	for (r = 0; r < rows; r++) {
		tot = 0;
		for (c = 0; c < COLS; c++) {
   10570:	e51b300c 	ldr	r3, [fp, #-12] ; r3 = c
   10574:	e2833001 	add	r3, r3, #1     ; r3 = c+1
   10578:	e50b300c 	str	r3, [fp, #-12] ; save c
   1057c:	e51b300c 	ldr	r3, [fp, #-12] ; load c
   10580:	e3530003 	cmp	r3, #3         ; c ?= 3
   10584:	dafffff0 	ble	1054c <sum_rows+0x34>
			tot += ar[r][c];
		}
		printf("row %d : sum = %d\n", r, tot);
   10588:	e51b2010 	ldr	r2, [fp, #-16]   ; tot
   1058c:	e51b1008 	ldr	r1, [fp, #-8]    ; r
   10590:	e59f0024 	ldr	r0, [pc, #36]	; 105bc <sum_rows+0xa4>
   10594:	ebffff5d 	bl	10310 <printf@plt>
{
	int r;
	int c;
	int tot;

	for (r = 0; r < rows; r++) {
   10598:	e51b3008 	ldr	r3, [fp, #-8] ; r
   1059c:	e2833001 	add	r3, r3, #1    ; r3 = r+1
   105a0:	e50b3008 	str	r3, [fp, #-8] ; save r
   105a4:	e51b2008 	ldr	r2, [fp, #-8] ; load r
   105a8:	e51b301c 	ldr	r3, [fp, #-28]	; 0xffffffe4    rows
   105ac:	e1520003 	cmp	r2, r3          ; r ?= rows
   105b0:	baffffe0 	blt	10538 <sum_rows+0x20>
		for (c = 0; c < COLS; c++) {
			tot += ar[r][c];
		}
		printf("row %d : sum = %d\n", r, tot);
	}
}
   105b4:	e24bd004 	sub	sp, fp, #4
   105b8:	e8bd8800 	pop	{fp, pc}
   105bc:	00010764 	.word	0x00010764

000105c0 <sum_cols>:

void sum_cols(int ar[][COLS], int rows)
{
   105c0:	e92d4800 	push	{fp, lr}
   105c4:	e28db004 	add	fp, sp, #4
   105c8:	e24dd018 	sub	sp, sp, #24
   105cc:	e50b0018 	str	r0, [fp, #-24]	; 0xffffffe8    ar
   105d0:	e50b101c 	str	r1, [fp, #-28]	; 0xffffffe4    rows
	int r;
	int c;
	int tot;

	for (c = 0; c < COLS; c++) {
   105d4:	e3a03000 	mov	r3, #0
   105d8:	e50b300c 	str	r3, [fp, #-12] ; c
   105dc:	ea00001b 	b	10650 <sum_cols+0x90>
		tot = 0;
   105e0:	e3a03000 	mov	r3, #0
   105e4:	e50b3010 	str	r3, [fp, #-16] ; tot
		for (r = 0; r < rows; r++)
   105e8:	e3a03000 	mov	r3, #0
   105ec:	e50b3008 	str	r3, [fp, #-8] ; r
   105f0:	ea00000b 	b	10624 <sum_cols+0x64>
			tot += ar[r][c];
   105f4:	e51b3008 	ldr	r3, [fp, #-8] ; r
   105f8:	e1a03203 	lsl	r3, r3, #4    ; r << 4
   105fc:	e51b2018 	ldr	r2, [fp, #-24]	; 0xffffffe8    ar
   10600:	e0823003 	add	r3, r2, r3      ; r3 = ar+r<<4
   10604:	e51b200c 	ldr	r2, [fp, #-12]  ; c
   10608:	e7933102 	ldr	r3, [r3, r2, lsl #2] ; r3 = (ar+r<<4)+c<<2
   1060c:	e51b2010 	ldr	r2, [fp, #-16]       ; tot
   10610:	e0823003 	add	r3, r2, r3           ; r3 = tot + ((ar+r<<4)+c<<2)
   10614:	e50b3010 	str	r3, [fp, #-16]       ; r3 = tot + ar[r][c]
	int c;
	int tot;

	for (c = 0; c < COLS; c++) {
		tot = 0;
		for (r = 0; r < rows; r++)
   10618:	e51b3008 	ldr	r3, [fp, #-8] ; r
   1061c:	e2833001 	add	r3, r3, #1    ; r+1
   10620:	e50b3008 	str	r3, [fp, #-8] ; r
   10624:	e51b2008 	ldr	r2, [fp, #-8] ; rows
   10628:	e51b301c 	ldr	r3, [fp, #-28]	; 0xffffffe4
   1062c:	e1520003 	cmp	r2, r3
   10630:	baffffef 	blt	105f4 <sum_cols+0x34>
			tot += ar[r][c];
		printf("col %d : sum = %d\n", c, tot);
   10634:	e51b2010 	ldr	r2, [fp, #-16]   ; tot
   10638:	e51b100c 	ldr	r1, [fp, #-12]   ; c
   1063c:	e59f0020 	ldr	r0, [pc, #32]	; 10664 <sum_cols+0xa4>
   10640:	ebffff32 	bl	10310 <printf@plt>
{
	int r;
	int c;
	int tot;

	for (c = 0; c < COLS; c++) {
   10644:	e51b300c 	ldr	r3, [fp, #-12] ; c
   10648:	e2833001 	add	r3, r3, #1     ; c+1
   1064c:	e50b300c 	str	r3, [fp, #-12] ; c
   10650:	e51b300c 	ldr	r3, [fp, #-12] ; c
   10654:	e3530003 	cmp	r3, #3         ; c ?= 3
   10658:	daffffe0 	ble	105e0 <sum_cols+0x20>
		tot = 0;
		for (r = 0; r < rows; r++)
			tot += ar[r][c];
		printf("col %d : sum = %d\n", c, tot);
	}
}
   1065c:	e24bd004 	sub	sp, fp, #4
   10660:	e8bd8800 	pop	{fp, pc}
   10664:	00010778 	.word	0x00010778

00010668 <sum2d>:

int sum2d(int (*ar)[COLS], int rows)
{
   10668:	e52db004 	push	{fp}		; (str fp, [sp, #-4]!)
   1066c:	e28db000 	add	fp, sp, #0
   10670:	e24dd01c 	sub	sp, sp, #28
   10674:	e50b0018 	str	r0, [fp, #-24]	; 0xffffffe8    ar
   10678:	e50b101c 	str	r1, [fp, #-28]	; 0xffffffe4    rows
	int r;
	int c;
	int tot = 0;
   1067c:	e3a03000 	mov	r3, #0
   10680:	e50b3010 	str	r3, [fp, #-16] ; tot

	for (r = 0; r < rows; r++) {
   10684:	e3a03000 	mov	r3, #0
   10688:	e50b3008 	str	r3, [fp, #-8] ; r
   1068c:	ea000014 	b	106e4 <sum2d+0x7c>
		for (c = 0; c < COLS; c++)
   10690:	e3a03000 	mov	r3, #0
   10694:	e50b300c 	str	r3, [fp, #-12] ; c
   10698:	ea00000b 	b	106cc <sum2d+0x64>
			tot += ar[r][c];
   1069c:	e51b3008 	ldr	r3, [fp, #-8] ; r
   106a0:	e1a03203 	lsl	r3, r3, #4    ; r3 = r<<4
   106a4:	e51b2018 	ldr	r2, [fp, #-24]	; 0xffffffe8 r2 = ar
   106a8:	e0823003 	add	r3, r2, r3      ; r3 = ar+r<<4
   106ac:	e51b200c 	ldr	r2, [fp, #-12]  ; r2 = c
   106b0:	e7933102 	ldr	r3, [r3, r2, lsl #2] ; r3 = ar+r<<4 + c<<2
   106b4:	e51b2010 	ldr	r2, [fp, #-16]       ; tot
   106b8:	e0823003 	add	r3, r2, r3           ; r3 = tot + ar[r][c]
   106bc:	e50b3010 	str	r3, [fp, #-16]       ; tot
	int r;
	int c;
	int tot = 0;

	for (r = 0; r < rows; r++) {
		for (c = 0; c < COLS; c++)
   106c0:	e51b300c 	ldr	r3, [fp, #-12] ; c
   106c4:	e2833001 	add	r3, r3, #1     ; c + 1
   106c8:	e50b300c 	str	r3, [fp, #-12] ; c
   106cc:	e51b300c 	ldr	r3, [fp, #-12] ; c
   106d0:	e3530003 	cmp	r3, #3
   106d4:	dafffff0 	ble	1069c <sum2d+0x34>
{
	int r;
	int c;
	int tot = 0;

	for (r = 0; r < rows; r++) {
   106d8:	e51b3008 	ldr	r3, [fp, #-8] ; r
   106dc:	e2833001 	add	r3, r3, #1    ; r + 1
   106e0:	e50b3008 	str	r3, [fp, #-8] ; r3 = r
   106e4:	e51b2008 	ldr	r2, [fp, #-8] ; r2 = r
   106e8:	e51b301c 	ldr	r3, [fp, #-28]	; 0xffffffe4    rows
   106ec:	e1520003 	cmp	r2, r3
   106f0:	baffffe6 	blt	10690 <sum2d+0x28>
		for (c = 0; c < COLS; c++)
			tot += ar[r][c];
	}

	return tot;
   106f4:	e51b3010 	ldr	r3, [fp, #-16]
}
   106f8:	e1a00003 	mov	r0, r3
   106fc:	e24bd000 	sub	sp, fp, #0
   10700:	e49db004 	pop	{fp}		; (ldr fp, [sp], #4)
   10704:	e12fff1e 	bx	lr

Disassembly of section .fini:

00010708 <_fini>:
   10708:	e1a0c00d 	mov	ip, sp
   1070c:	e92ddff0 	push	{r4, r5, r6, r7, r8, r9, sl, fp, ip, lr, pc}
   10710:	e24cb004 	sub	fp, ip, #4
   10714:	e91baff0 	ldmdb	fp, {r4, r5, r6, r7, r8, r9, sl, fp, sp, pc}
